import java.util.Arrays;

public class Test {
    public static int findNum(int[] array) {//找出数列中的单个数，其他的数以成对形式出现
        int ret = 0;
        for (int i = 0;i < array.length;i++){
            ret ^= array[i];
        }
        return ret;
    }

    public static void main(String[] args) {
        int[] array = {1,1,3,4,4};
        int a = findNum(array);
        System.out.println(a);
    }
    /*public static void find(int[] array) {
        Arrays.sort(array);// 先排序
        //两个两个检查，如果两个不相等就返回两个中的第一个（选择这个作为条件）
        //单个数之前都是两两一组中第一个数为偶数下标，第二个为奇数下标。单个数之后互换
        //单个数总是出现在奇数位上，但是它的下标为偶数

        for (int a = 0;a <= array.length/2+1;a+=2){
            if (array[a]!=array[a+1]){//  单个数在数列中
                System.out.println(array[a]);
            }else if (array[array.length-3]==array[array.length-2]){//单个数在数列末
                System.out.println(array[array.length]);
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {1,1,2,2,3};
        find(array);
    }*/
    public static int[] findTarget(int[] array,int target) {// 第二种方法：找出和为target的两个整数并返回数组下标（假设只有一个答案）
        int[] ret = {-1,-1};//将下标在数组里盛好了端上来
        for (int i = 0;i < array.length;i++){
            for (int j = i+1;j < array.length;j++){
                if (array[i] + array[j] == target){
                    ret[0] = i;
                    ret[1] = j;
                    return ret;
                }
            }
        }
        return ret;
    }
    public static void count(int[] nums,int target) {//找出和为target的两个整数并返回数组下标（假设只有一个答案）
        //第一个数过一遍~第二个数过一遍~
        for (int a = 0;a < nums.length;a++){
            //第一个数核对array.length次。第二个数就减个1
            for (int b = a+1;b <= nums.length-a-1;b++){
                //现在开始比较两个数之和
                if (nums[a] + nums[b] == target){
                    System.out.println("["+a+","+b+"]");
                }
            }
        }
    }

    public static void main1(String[] args) {
        int[] nums = {2,6,9,15};
        count(nums,15);
    }
}
